11
תגובות

מה המשמעות של $this

פתח soogo ,
מה המשמעות של $this

class Fruts{
 
    var $name;
   
    function getName($text)
    {
      $this->name = $text;
    }
  }

11 תשובות

avatar ענה yonikal56 ב 09 לאוקטובר 2013 #

הכוונה היא שזה בתוך האובייקט הזה זאת אומרת המשתנה name מתוך האובייקט Fruts האובייקט זה הclass.
אז $this זה אומר הclass הזה ואז -> זה מתוך האובייט ואז אצלך כתוב name אז זה משתנה name.

avatar ענה razand ב 09 לאוקטובר 2013 #

ככה בעצם אתה יכול לפנות למשתנה או לפונקציה מתוך המחלקה עצמה.
ככה בעצם אתה יכול להשתמש לדוגמה במשתנים שהם פרטיים (כלומר שאי אפשר לגשת אליהם ממחלקות אחרות).

avatar ענה soogo ב 09 לאוקטובר 2013 #

למה כותבים

$this->name = $text;

ולא
$this->$name = $text;

avatar ענה yonikal56 ב 09 לאוקטובר 2013 #

ככה החליטו הבונים של PHP, ואולי בגלל שאף פעם
בPHP כשמשתמשים למשל בXML אז יש למשל

$xml->l

זה אף פעם לא עם $.

avatar ענה soogo ב 09 לאוקטובר 2013 #

אז $this בתוך class זה שווה class עצמו?

avatar ענה soogo ב 09 לאוקטובר 2013 #

ויש אפשרות לכתוב את שם הקלאס במקום?

avatar ענה intval ב 09 לאוקטובר 2013 #

רק חושב לציין ש this בתוך מחלקה, זו לא המחלקה עצמה, אלה המופע של אותה מחלקה.

$x = new clas()
$y = new clas();

במקרה הראשון this יהיה האיקס ובמקרה השני ה-Y

ולא, אי אפשר לכתוב את שם הקלאס.
א. כי יכולים להיות הרבה מופעים של אותה מחלקה
ב. כי במקרים מסוימים בתוך המחלקה אתה בכלל לא יודע מה שם המחלקה. למשל אם מדובר בירושה והקוד שלך נמצא בתוך מחלקה האב שממנה יורשים,
בתוך מחלקת האב אתה לא יודע מה שם המחלקה היורשת.
יש עוד מקרים כאלה, כמו traits למשל. אבל כל זה לא משנה שום דבר.

avatar ענה soogo ב 09 לאוקטובר 2013 #

תודה רבה
דרך אגב קראתי עכשיו מאמר שאומר שבגלל שלכל משתנה אפשר לקרuא רק במתודה שהוא הוגד אז שמים this

avatar ענה intval ב 09 לאוקטובר 2013 #

זה לא מדויק. this לא מאפשר פתאום לקרוא למשתנים מתוך מטודות אחרות.
פשוט יש משתנים שהם חלק ממטודה מסוימת ויש משתנים שהם חלק ממופע מסוים. אל המשתנים ששייכים למופע מסוים אפשר לגשת מתוך כל המטודות. אלו משתנים ששייכים למטודות - אי אפשר לגשת משום מקום חוץ מאותה מטודה. this לא משחק פה שום תפקיד.

avatar ענה iiddaannyy ב 10 לאוקטובר 2013 #

this הוא האובייקט שמתוכו מורצת המתודה.

avatar ענה liorel100 ב 11 לאוקטובר 2013 #

פסאודו משתנה שמתאר את האובייקט שממנו בוצעה הקריאה למתודה.